Skip to content

Document breaking change: Arm64 SVE NonFaulting loads require mask parameter #47907

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 8, 2025

This PR adds comprehensive breaking change documentation for .NET 10, where all Arm64 SVE NonFaulting load APIs now require a mask parameter as the first argument.

Changes Made

New Documentation:

  • Created docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md with complete breaking change documentation following the standard template

Navigation Updates:

  • Added entry to docs/core/compatibility/toc.yml under Core .NET libraries section for .NET 10
  • Added table entry to docs/core/compatibility/10.0.md with proper classification as binary/source incompatible

Breaking Change Details

This change affects all 25 NonFaulting load APIs in the System.Runtime.Intrinsics.Arm.Sve namespace. Previously, these methods took only an address parameter:

// .NET 9 behavior
Vector<short> result = Sve.LoadVectorByteNonFaultingZeroExtendToInt16(address);

Now they require a mask parameter as the first argument:

// .NET 10 behavior
Vector<short> result = Sve.LoadVectorByteNonFaultingZeroExtendToInt16(
    Sve.CreateTrueMaskInt16(), address);

The change was necessary because non-faulting loads update the FFR (First Fault Register) based on which vector lanes are loaded, making the standard ConditionalSelect approach invalid for masked operations.

Documentation Standards

  • Follows Microsoft Writing Style Guide
  • Uses proper xref syntax for API cross-references
  • Passes all markdownlint validation
  • Includes clear migration guidance and code examples
  • Documents technical reasoning behind the change

Fixes #47439.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.


Internal previews

📄 File 🔗 Preview link
docs/core/compatibility/10.0.md Breaking changes in .NET 10
docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md Arm64 SVE nonfaulting loads require mask parameter
docs/core/compatibility/toc.yml docs/core/compatibility/toc

@dotnet-policy-service dotnet-policy-service bot added dotnet-fundamentals/svc okr-quality Content-quality KR: Concerns article defects (bugs), freshness, or build warnings. labels Aug 8, 2025
@Copilot Copilot AI changed the title [WIP] [Breaking change]: Arm64 SVE NonFaulting loads Document breaking change: Arm64 SVE NonFaulting loads require mask parameter Aug 8, 2025
@Copilot Copilot AI requested a review from gewarren August 8, 2025 22:56
Copilot finished work on behalf of gewarren August 8, 2025 22:56
@gewarren gewarren marked this pull request as ready for review August 11, 2025 22:04
@gewarren gewarren requested a review from a team as a code owner August 11, 2025 22:04
@gewarren
Copy link
Contributor

cc @a74nh.

@gewarren gewarren removed the okr-quality Content-quality KR: Concerns article defects (bugs), freshness, or build warnings. label Aug 11, 2025
Copy link

@a74nh a74nh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technical contents of this LGTM. I'm not sure what the expected style or depth of this should be so I can't comment on that part.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Breaking change]: Arm64 SVE NonFaulting loads
3 participants